package com.ym.pms.service;

import com.github.pagehelper.PageInfo;
import com.ym.pms.model.Room;

public interface RoomService {

    /**
     * 添加房间信息
     * @param room 房间对象
     * @return 数据表更改的行数
     */
    public int add(Room room);

    /**
     * 通过房间编号删除房间信息
     * @param rmCoding 房间编号
     * @return 数据表更改的行数
     */
    public int delete(String rmCoding);

    /**
     * 通过房间编码查询对应数据进行更新
     * @param room 存放更新信息的room对象
     * @return 数据表更改的行数
     */
    public int update(Room room);

    /**
     * 通过套房编码查询套房
     * @param rmCoding 套房编码
     * @return Room对象
     */
    public Room findByCoding(String rmCoding);

    /**
     * 分页查询所有房间信息
     * @param pageNum 当前页码
     * @param pageSize 页面大小
     * @return PageInfo封装的List<Room>
     */
    public PageInfo findAll(int pageNum, int pageSize);

    /**
     * 分页查询所有符合用户性别的启用且空置或使用中且还有空铺位的房间信息
     * @param gender 用户性别
     * @param pageNum 当前页码
     * @param pageSize 页面大小
     * @return PageInfo封装的List<Room>
     */
    public PageInfo findByGender(String gender, int pageNum, int pageSize);

    /**
     * 分页模糊查询所有包含关键字且启用且空置或使用中的房间信息
     * @param room 包含所有关键字的Room对象
     * @param pageNum 当前页码
     * @param pageSize 页面大小
     * @return PageInfo封装的List<Room>
     */
    public PageInfo fuzzyQuery(Room room, int pageNum, int pageSize);

    public int getMaxNo();

    public String getCoding();

    void changeSatus(String bkRmcoding);

    void deleteAllBySuCoding(String s);
}
